package cx3k.dataObjects;


public class Course {
	private int courseId;
	private int courseNumber;
	private DegreeProgram fieldOfStudy;
	private GradingMethod gradingMethod;
	private Semester semester;
	private String description;
	//private Map section;
	private int credits;
	private int difficulty;
	private int rating;
	
	// create constructors
	
	Course(int courseId, int courseNumber, DegreeProgram fieldOfStudy, GradingMethod gradingMethod, Semester semester, String description, int credits, int difficulty, int rating){
		this.courseId = courseId;
		this.courseNumber = courseNumber;
		this.fieldOfStudy = new DegreeProgram(fieldOfStudy);
		this.gradingMethod = new GradingMethod(gradingMethod);
		this.semester = new Semester(semester);
		this.description = new String(description);
		this.credits = credits;
		this.difficulty = difficulty;
		this.rating = rating;
	}
	
	Course(Course temp){
		this(temp.courseId, temp.courseNumber, temp.fieldOfStudy, temp.gradingMethod, temp.semester, temp.description, temp.credits, temp.difficulty, temp.rating);
	}
	
	public int getCourseId(){
		return this.courseId;
	}
	public int getcourseNumber(){
		return this.courseNumber;
	}
	public DegreeProgram getFieldOfStudy(){
		return new DegreeProgram(this.fieldOfStudy);
	}
	public GradingMethod getGradingMethod(){
		return new GradingMethod(this.gradingMethod);
	}
	public Semester getSemester(){
		return new Semester(this.semester);
	}
	public String getDescription(){
		return this.description;
	}
	//public Section getSection(){
	//	return this.section;
	//}
	public int getCredits(){
		return this.credits;
	}
	public int getDifficulty(){
		return this.difficulty;
	}
	public int getRating(){
		return this.rating;
	}
}
